package com.orzxlee.FunctionInterface04;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
import java.util.function.Supplier;

/**
 * 第四节 函数接口 常用函数式接口 Supplier 生产型接口
 *
 *  JDK 8 提供了
 *
 *     1.Supplier接口
 *          T get():    获得结果 T为返回类型
 *          方法不需要参数
 *          Supplier<T> 生产型接口
 *
 *     2.Consumer接口
 *     3.Predicate接口
 *     4.Function接口
 *
 *
 *
 *
 */
public class Demo {
    public static void main(String[] args) {
        System.out.println(getString(() -> "林青霞"));

        System.out.println(getInt(() -> 20));

        System.out.println("--------");

        //返回值是函数式接口,可以用Lambda表达式替代
        Supplier<String> s = () -> "林青霞2";
        System.out.println(s.get());

        //获取学生对象
        Supplier<Student> scannerSupplier = () -> new Student("张三",2);
        System.out.println(scannerSupplier.get().toString());


    }



    //定义一个方法,返回整数数据
    private static Integer  getInt(Supplier<Integer> sup){
        return sup.get();
    }
     //定义一个方法,返回字符串数据
    private static String  getString(Supplier<String> sup){
        return sup.get();
    }

}


















